看到chatgpt这么火,我也做了个微信聊天机器人 您所在的位置:网站首页 wpf 微信机器人 看到chatgpt这么火,我也做了个微信聊天机器人

看到chatgpt这么火,我也做了个微信聊天机器人

2023-07-19 12:49| 来源: 网络整理| 查看: 265

听说最近ChatGPT很火,我也做了个自动跟女朋友聊天的机器人

这两天ChatGPT火得很,各种报道ChatGPT可以聊天、可以写代码、甚至还写出了毁灭人类计划书!

真是看的我心痒痒啊,但是因为某些原因国内没法试用,加上这两天想讨女朋友开心,所以打算写个自动回复女朋友消息的聊天机器人,也算是一举两得。

思路也很简单,首先实现调用微信api进行消息接收和回复,其次实现一个简单的聊天机器人,能逗女朋友开心。

微信消息接收和回复

这里使用lich0821大佬WeChatFerry项目的代码,WeChatFerry通过hook的方式拦截了微信消息,并实现了python/c++/java的api调用。

安装方法是:

去下载github项目中最新的release文件, 解压后按照 readme.md文档进行安装

注意的点有

微信版本和python版本需要匹配 执行 python -m grpc_tools时填写的路径需要改成绝对路径 聊天机器人

聊天机器人我们也不需要太复杂的逻辑,只要能逗女朋友开心就行了,所以我们自己实现。

逻辑如下

聊天第一句一般都是问"你在干嘛?",我们反客为主,直接将"?"替换成"!",反问对方。 当对方说"我xxxx你"时,你需要表达跟对方相同的感受,所以需要回复"我也xxxx你"。 当对方进行询问"你xxxx?"的时候,你需要做出肯定的回复,所以我们回复"对啊!"。 当"你"和"我"同时在句子中时, 我们需要传递相同的感受,所以把"你"改成"我",把"我"改成"你"。 遇到疑问句或感叹句时,我们直接改变句意,把"!"和"?"互换。 最后做一个兜底回答,从"噢噢""这样啊""好吧"中选一个此进行回答。

具体代码如下

    def handle_recv_msg(msg: wcf.WxMsg):        def replace(d):            for i in range(len(msg_list)):                for old, new in d.items():                    if msg_list[i] == old:                        send_msg[i] = new                        continue        if msg.sender != target_wxid:            return        msg_list = list(msg.content)        send_msg = msg_list[:]        if "你在" == "".join(msg_list[:2]):            mapping = {                "!": "?",                "?": "!",                "!": "?",                "?": "!"            }            replace(mapping)        elif "我" == msg_list[0] and "你" in msg_list:            mapping = {                "我": "我也",            }            replace(mapping)        elif "你" == msg_list[0] and ("?" == msg_list[-1] or "?" == msg_list[-1]):            send_msg = "对啊!"        elif "你" in msg_list and "我" in msg_list:            mapping = {                "我": "你",                "你": "我"            }            replace(mapping)        elif any([(i in msg_list) for i in ["?", "?", "!", "!"]]):            mapping = {                "!": "?",                "?": "!",                "!": "?",                "?": "!"            }            replace(mapping)        else:            send_msg = [random.choice(["噢噢", "这样啊", "好吧"])]        time.sleep(0.5)        print("收到消息:", msg.content, "发送消息:", "".join(send_msg))        wcf.send_text("".join(send_msg), target_wxid)

这样我们的微信哄女友开心机器人就写好啦,试一试效果

alt

怎么样,很不错吧,不过这是我实验的一段对话,真正的对话,刚才也试过了,给大家展示一下

alt alt alt

额。。。

看来女朋友是门外汉,还需要对女朋友做优化才能让这段程序正确运行啊,有女朋友的小伙伴也赶紧去试试吧。

需要源代码的请在评论区回复噢。

不说了,走廊里太冷了,我去消防通道睡觉去了。

end



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有